<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>立即执行函数</title>
</head>
<body>
<script>
/* 1.立即执行函数  匿名函数用括号括起来 后面跟一个括号;就立即执行
*   (function(){
*   语法....
*   })();
*   对象的属性可以是任意值，也可以是一个对象，也可以是一个函数
* 2.  调用对象的方法
*   调用函数2种方法: 这2者没有本质的区别 只有名称的区别
*       1.函数名(); 例如demo();
*       2.对象.属性(); 例如obj.sayName();
*   函数是对象的属性，如果一个函数作为对象的属性保存，那么我们称这个函数是对象的方法，
*   调用函数就是调用对象的方法(method)
* 3.列举对象的属性
*    用for....in...语句
*   语法:
*       for(var 变量 in 对象){
*           语句.....
*           }
*       for...in...语句 对象中有几个属性。循环体就执行几次
*
*
* */
//举例1
    (function (a,b) {
        console.log("a="+a);
        console.log("b="+b);
    })(45,20);
    //举例2
    var obj=new Object();
    obj.name="孙悟空";
    obj.age=12;
    obj.sayName=function () {// 对象的属性可以是任意值，也可以是一个对象，也可以是一个函数
    console.log(obj.name);
    }

    function demo(){
        console.log(obj.name);
    }
    //调用函数
    demo();

    //调用对象的方法
    obj.sayName();//调用函数就是调用对象的方法(method)
//举例3 列举对象的属性
    var obj={
            name:"孙悟空",
            age:20,
            gender:"男",
            address:"花果山",
    };
    for(var n in obj){
        console.log(n+":");
        console.log(obj[n]);
        //console.log(n+" is "+obj[n]) 也可以何在一起
    }

</script>
</body>
</html>